package com.gxa.pingan.service;

import com.gxa.pingan.exception.BusinessException;
import com.gxa.pingan.pojo.Refund;
import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Propagation;
import org.springframework.transaction.annotation.Transactional;

import java.util.List;

/**
 * @author lijianmin
 * @date 2021/10/25  15:34:20
 */
public interface RefundService {

    /**
     * 退款列表查询的方法,orderType如果为空,则进行全查询,不为空则进行订单状态查询
     * @param orderType 订单状态
     * @param page 页码
     * @param size 每页记录数
     * @return 返回查询到的集合以及总数
     */
    List<Refund> getList(Integer orderType,Integer page,Integer size) throws BusinessException;
    /**
     * 退款列表查询总数的方法,orderType如果为空,则进行全查询计数,不为空则进行订单状态查询计数
     * @param orderType 订单状态
     * @return 返回查询到的集合以及总数
     */
    Integer getListCount(Integer orderType) throws BusinessException;

    /**
     * 驳回退款的方法(修改订单状态为已拒绝(1))
     * @param orderNum 修改状态订单的orderNum
     * @param rejReason 驳回退款的理由
     * @return 返回修改后的数据和是否返回成功
     */
    Boolean refuseRefund(String orderNum,String rejReason) throws BusinessException;

    /**
     * 退款的方法(修改订单状态为退款完成(2))
     * @param orderNum 修改状态订单的orderNum
     * @return 返回修改后的数据和是否返回成功
     */
    Boolean refund(String orderNum) throws BusinessException;

}
